#pragma once
#ifndef ENEMYMANAGER_H
#define ENEMYMANAGER_H

#include "vector"
class CEntityEnemy;
class CWorldEntity;
class CRoute;
using std::vector;

enum eEnemyTemplate
{
	eEnemyBlueLightLaser,
	eEnemyPurpleLaser,
	eEnemyBlueDarkLaser,
	eEnemyGreenLaser,
	eEnemyRedLaser,
	eEnemyBlueLightStar,
	eEnemyPurpleStar,
	eEnemyBlueDarkStar,
	eEnemyGreenStar,
	eEnemyRedStar
};
class CEnemyManager
{
private:
	static CEnemyManager* instance;
	vector<CEntityEnemy*> vectorEnemyTemplate;
	int indexFirstEnemy;
	int indexLastEnemy;


protected:
	CEnemyManager(void);
	~CEnemyManager(void);

public:
	static CEnemyManager& getInstance(void);
	void CEnemyManager::Close(void);

	void CEnemyManager::createEnemyTemplate(int indexSprite, int indexFrame, int health, int collisionCost, 
										  int ProjectileType);
	void CEnemyManager::spawnEnemy(int indexEnemyTemplate, int timeToSpawn, int timeToLive, CRoute* const route,
		int speed, int timeBetweenProjectile);

	int getIndexFirstEnemy(void)const;
	int getIndexLastEnemy(void)const;
};
#define ENEMYMANAGER CEnemyManager::getInstance()
#endif